package com.company.ljh.easy;
//找出数组中重复的数字。
//
//
//在一个长度为 n 的数组 nums 里的所有数字都在 0～n-1 的范围内。数组中某些数字是重复的，但不知道有几个数字重复了，也不知道每个数字重复了几次。请
//找出数组中任意一个重复的数字。
//
// 示例 1：

//
// 输入：
//[2, 3, 1, 0, 2, 5, 3]
//输出：2 或 3
//
//
//
//
// 限制：
//
// 2 <= n <= 100000
// Related Topics 数组 哈希表 排序
// 👍 793 👎 0
/**
 * @description:
 * @projectName:leet_code
 * @see:com.company.ljh.easy
 * @author:ljh
 * @createTime:2022/3/28 10:44
 * @version:1.0
 */
public class 数组中的重复数字 {
    public int findRepeatNumber(int[] nums) {
        int i =0;
        while (i < nums.length){
            int temp = nums[i];
            if (temp >= 0){
                if (nums[temp] == -1){
                    return temp;
                }
                nums[i] = nums[temp];
                nums[temp] = -1;
            }else {
                i++;
            }
        }
        return -1;
    }
}
